home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / GEM / VDICONTR.I < prev    next >
Encoding:
Modula Implementation  |  1993-10-29  |  3.4 KB  |  125 lines

  1. IMPLEMENTATION MODULE VDIControls;
  2. (*$L-, N+, Y+*)
  3.  
  4.  
  5. (*  MEGAMAX MODULA 2 GEM-Library :  Die VDI Kontrollfunktionen
  6.  *
  7.  *  Autor: Manuel Chakravarty           Erstellt :  29.10.87
  8.  *
  9.  *  MS: Michael Seyfried
  10.  *
  11.  *  Version   2.2     V#0021
  12.  *)
  13.  
  14. (* 29.10.87     | Übernahme aus GEMBase
  15.  * 08.04.89     | 'LoadFonts' liefert 'loaded' jetzt richtig als VAR-Parm.
  16.  * 02.04.90     | Anpassung auf public arrays
  17.  * 25.02.91 TT  | unloadFonts nach GEMShare übertragen; LoadFonts löscht die
  18.  *                Anzahl, wenn's schiefgeht.
  19.  * 20.05.91 MS  | LoadFonts korrigiert
  20.  *)
  21.  
  22.  
  23. FROM    SYSTEM          IMPORT ASSEMBLER, WORD;
  24.  
  25. FROM    GrafBase        IMPORT Rectangle;
  26.  
  27. IMPORT  GEMShare;
  28.  
  29. FROM    GEMEnv          IMPORT DeviceHandle;
  30.  
  31. (*$I GEMOPS.ICL *)
  32.  
  33.  
  34. PROCEDURE ClearWorkstation(handle:DeviceHandle);
  35.  
  36. BEGIN
  37.   ASSEMBLER
  38.         MOVE.W  #CLEAR_WORKSTATION,(A3)+
  39.         CLR.W   (A3)+
  40.         JSR     vdi_if
  41.   END;
  42. END ClearWorkstation;
  43.  
  44. PROCEDURE UpdateWorkstation(handle:DeviceHandle);
  45.  
  46. BEGIN
  47.   ASSEMBLER
  48.         MOVE.W  #UPDATE_WORKSTATION,(A3)+
  49.         CLR.W   (A3)+
  50.         JSR     vdi_if
  51.   END;
  52. END UpdateWorkstation;
  53.  
  54. PROCEDURE LoadFonts (handle: DeviceHandle; select: WORD; VAR loaded: CARDINAL);
  55.  
  56.   BEGIN
  57.     ASSEMBLER
  58.         MOVE.L  -(A3),-(A7)
  59.         MOVE.L  pubs,A0
  60.         MOVE.W  -(A3),pubArrays.vINTIN(A0)
  61.         MOVE.L  -4(A3),(A3)+            ; !MS 'handle' retten
  62.  
  63.         SUBQ.L  #2,A7
  64.         MOVE.L  A7,(A3)+
  65.         JSR     setDevice
  66.         TST.W   (A7)+
  67.         BNE     ok
  68.         MOVE.L  (A7)+,A1
  69.         CLR.W   (A1)
  70.         SUBQ.L  #4,A3                   ; !MS 'handle' wegräumen
  71.         BRA     ende
  72. ok      MOVE.W  #LOAD_FONTS,(A3)+       ; !MS hier liegt 'handle' auf A3-Stack
  73.         CLR.W   (A3)+
  74.         JSR     vdi_if
  75.  
  76.         MOVE.L  pubs,A0
  77.         MOVE.L  (A7)+,A1
  78.         MOVE.W  pubArrays.vINTOUT(A0),(A1)
  79.         BEQ     ende                    ; !MS hier stand falsch: 'BNE'
  80.  
  81.         MOVE.L  our_cb,A0
  82.         MOVE.L  cb.CURDEVICE(A0),A1
  83.         MOVE.W  #1,device.fontsLoaded(A1)
  84. ende
  85.     END;
  86.   END LoadFonts;
  87.  
  88. PROCEDURE UnloadFonts(handle:DeviceHandle;select:WORD);
  89.  
  90. BEGIN
  91.   ASSEMBLER
  92.         JMP     unloadFonts
  93.   END;
  94. END UnloadFonts;
  95.  
  96. PROCEDURE SetClipping(handle:DeviceHandle;frame:Rectangle);
  97.  
  98. BEGIN
  99.   ASSEMBLER
  100.     MOVE.L      pubs,A0
  101.     MOVE.W      #1,pubArrays.vINTIN(A0)
  102.     LEA         pubArrays.PTSIN+8(A0),A1
  103.     JSR         getCalcedFrame
  104.     MOVE.W      #SET_CLIPPING,(A3)+
  105.     CLR.W       (A3)+
  106.     JSR         vdi_if
  107.   END;
  108. END SetClipping;
  109.  
  110. PROCEDURE DisableClipping(handle:DeviceHandle);
  111.  
  112. BEGIN
  113.   ASSEMBLER
  114.     MOVE.L      pubs,A0
  115.     CLR.W       pubArrays.vINTIN(A0)
  116.     MOVE.W      #SET_CLIPPING,(A3)+
  117.     CLR.W       (A3)+
  118.     JSR         vdi_if
  119.   END;
  120. END DisableClipping;
  121.  
  122.  
  123. END VDIControls.
  124. (* $FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$0000032F$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665$FFF8B665Ç$00000250T.......T.......T.......T.......T.......T.......T.......T.......T.......T.......$000001AF$00000253$00000232$0000023C$00000250$FFF1339E$FFF1339E$FFF1339E$FFF1339E$FFF1339E$FFF1339E$FFEB643A$FFF1339E$00000228$FFF1339E$000000E1öÇâ*)
  125.